package com.cmy.dbTransfer;


import com.cmy.bean.DdlRecord;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.jdbc.core.JdbcTemplate;

/**
 * 定义数据库转换接口
 * @author : Cmy
 * @date : 2024-08-27 11:31
 */
public abstract class DBHandler {
    /**
     * 建库语句
     *
     * @return
     */
    public abstract String createDataBaseSql(String dbName);

    /**
     * 生成ddl_history建表语句
     * @return
     */
    public abstract String initTableDdlHistory();

    /**
     * 生成清空表格数据的语句
     * @param tableName
     * @return
     */
    public abstract String generateTableTruncateTable(String tableName);


    /**
     * 批量插入
     *
     * @param ddlRecord    ddl记录
     * @param jdbcTemplate jdbc模板
     */
    public abstract void batchInsert(DdlRecord ddlRecord, JdbcTemplate jdbcTemplate);

    /**
     * 建表语句
     * @return
     */
    public abstract String createTableSql();

    /**
     * 修改表字段语句
     */
    public abstract String alterTableColumnsSql();

    /**
     * 添加表字段语句
     */
    public abstract String addTableColumnsSql();

    /**
     * 表记录添加语句
     */
    public abstract String addTableRecordsSql();

    /**
     * 表记录删除语句
     */
    public abstract String removeTableRecordsSql();

    /**
     * 表记录修改语句
     */
    public abstract String updateTableRecordsSql();
}

    